package com.zff.rental.file;

/**
 * @author HCY
 */

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.spi.FileSystemProvider;
import java.util.Set;

/**
 * 创建文件
 * 使用 FileSystemProvider 创建文件时，可以通过 newOutputStream 或 newFileChannel 方法实现。
 */
public class CreateFileExample {
    public static void main(String[] args) {
        FileSystemProvider provider = FileSystems.getDefault().provider();
        Path filePath = Paths.get("E://test//testDir//example.txt");

        try {
            DirectoryStream<Path> paths = provider.newDirectoryStream(Paths.get("E://test//"), entry -> {
                        return true; // 接受所有文件和目录
                    }
            );
            for (Path path : paths) {
                System.out.println(path);
            }

            provider.createDirectory(filePath.getParent());

            // 使用 newOutputStream 创建文件
            // provider.newOutputStream(filePath, StandardOpenOption.CREATE, StandardOpenOption.WRITE).close();

            // 或者使用 newFileChannel 创建文件
            provider.newFileChannel(filePath, Set.of(StandardOpenOption.CREATE, StandardOpenOption.WRITE)).close();

            System.out.println("文件创建成功: " + filePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
